﻿using System;

using Adaptive.Agrona;

using Unity.Commons.Client.Statistics;
using Unity.Credentials;
using Unity.Type;

namespace Unity.Commons.Client
{
    public interface IUnityClient : IDisposable
    {
        bool Connect(int timeout);

        int Generate(EntityType entityType, IMutableDirectBuffer buffer, int offset);

        long Update(EntityType entityType, IMutableDirectBuffer buffer, int offset, int length);

        void Close();

        IUnityStatistics GetStatistics();

        ClientMode GetMode();
    }
    
}
